The complexity of the tasks that can be accomplished by computer programs is ever increasing. For example, word processing programs of the past did little more than receive, store, and allow users to print text input. Word processing programs today allow users to automatically generate and embed tables, summaries, and three-dimensional colored graphs. As the complexity of the tasks that can be performed has increased, it has become critical to provide user-friendly interfaces for performing the tasks. To a user, a computer program's capabilities are worthless if accessing those capabilities is beyond the skill of the user.
One technique that allows users to perform relatively complex tasks without requiring an inordinate amount of training involves breaking the task up into a sequence of sub-tasks. The user is then presented with a sequence of panels that correspond to the sequence of sub-tasks. In this context, the term "panel" refers to any visual display unit, including but not limited to screens, windows, dialog boxes, hypertext pages, and message boxes.
Within each panel of the panel sequence, the user is only required to enter the information relevant to the particular sub-task associated with the currently displayed panel. Because the user is able to concentrate on a single sub-task at a time, the user is less likely to become overwhelmed by the complexity of the larger task.
For example, consider the task of creating a report from information in a database. Such a task requires a user to make a multitude of choices, including choices related to the contents of the report and choices related to the format of the report. To assist a user, the database application may present the user with a first panel that allows a user to select the source of the data, a second panel that allows a user to specify how the data is to be ordered and grouped, a third panel that allows the user to specify the general type of layout to be used by the report, a fourth panel that allows the user to specify the styles to be used for each element of the report, etc. By stepping through these panels in sequence, a user with little or no training on the database application software may be able to create a professional quality report with little difficulty.
Unfortunately, the information presented on the sub-task panels of the computer program typically only addresses what the user can do at that point in the task, not what a user should do. For example, the company to which a user belongs may have certain policies about how a report should be formatted. However, the panel presented by the program will allow the user to select any format without giving any indication that a certain format should be used. In situations such as this where policies restrict users to certain choices, users may ensure the selection of correct choices by maintaining and consulting policy manuals.
In other situations, the correct choice of options may be dictated by factors other than company policy. For example, consider a sequence of panels for the task of setting up an electronic mail client. One panel in the sequence may ask the user to specify the name of the electronic mail server through which the client is to send and receive electronic mail. The mail client will not operate correctly if a valid mail server is not specified (not because of any policy on what an electronic mail server can be named, but because the specified name must identify an actual electronic mail server). In situations such as this, the user that is setting up the electronic mail client may have to expend an unacceptable amount of time and resources to determine the appropriate information. For example, the user may have to make several calls to a help desk to locate someone who knows the name of the appropriate electronic mail server.
Various approaches may be taken to customize software to the specific requirements of a user or customer. For example, the software developer may simply alter the application software's structure, or replace an entire task with a customer-defined task. The software may also be designed in a way that allows users to associate their own static information with a panel or icon. However, once associated with a panel or icon, such static information would be tied to the panel or icon regardless of the context in which the panel or icon is displayed.
For example, some network management platforms, including Open View by Hewlett Packard, allow administrators to add or replace menu items for the application. Such user-specified menu items are defined for the entire set of users of the application, and do not take into account the user's context. Further, the ability of a user to supply menu items does not allow for the partial replacement of task steps associated with the menu item. Thus, this feature cannot be used, for example, to modify the panels associated with the task of adding a new device to the system in a way that implements or enforces the specific naming policies defined by the customer's organization.
Based on the foregoing, it is clearly desirable to provide a mechanism that reduces the difficulty of using computer programs to performing complex tasks. It is further desirable provide information about what selections a users should make with respect to a particular sub-task at the time the user is presented with a panel that indicates the selections a user can make with respect to the particular sub-task. It is further desirable to provide a mechanism that allows users to customize tasks by augmenting and/or partially replacing task steps. It is also desirable, in situations where a user may arrive at the same panel through different routes, to provide the user information that takes into account how a user arrived at a particular panel.